package com.study.kafka.consumer;

import com.study.kafka.message.Demo01Message;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.stereotype.Component;

/**
 * @author yuantongqin
 * 2021/8/4
 **/
@Component
public class Demo01AConsumer {
    private Logger logger = LoggerFactory.getLogger(getClass());

    /**
     * 不同的消费者，可以订阅同一个topic，如果设置auto-offset-reset：earliest 他们都是从其实位置开始消费
     * 发送到topic的一条消息可以被订阅这个topic的每一个消费者分组消费到，如果有10个消费者分组，这条消息就会被消费10次
     * @param record
     */
    @KafkaListener(topics = Demo01Message.TOPIC,
            groupId = "demo01-A-consumer-group-" + Demo01Message.TOPIC)
    public void onMessage(ConsumerRecord<Integer, String> record) {

        logger.info("[onMessage][线程编号:{} 消息内容：{}]", Thread.currentThread().getId(), record);
        logger.info("消息的内容[{}] ",record.value());
    }

}
